return {
    ['corpse'] = {
        glyph = '%',
        name = 'corpse',
        color = { 200, 160, 100 },
    },

    ['chunks'] = {
        glyph = '%',
        name = 'chunks',
        color = { 200, 160, 100 },
    },

    ['bones'] = {
        glyph = '%',
        name = 'bones',
        color = { 240, 240, 240 },
    },
    ['fists'] = {
        glyph = '-',
        name = 'fists',
        color = { 120, 120, 120 },
        slot = 'weapon',
        heft = 10,
        reach = 4,
        blade = 0,
        verb = { 'graze', 'jab', 'punch', 'sock', 'pummel', 'bash' },
        verb3 = { 'grazes', 'jabs', 'punches', 'socks', 'pummels', 'bashes' },
    },
    ['heavy fists'] = {
        glyph = '-',
        name = 'fists',
        color = { 120, 120, 120 },
        slot = 'weapon',
        heft = 20,
        reach = 4,
        blade = 0,
        verb = { 'graze', 'jab', 'punch', 'sock', 'pummel', 'bash' },
        verb3 = { 'grazes', 'jabs', 'punches', 'socks', 'pummels', 'bashes' },
    },
    ['claws'] = {
        glyph = '-',
        name = 'claws',
        color = { 200, 200, 200 },
        slot = 'weapon',
        heft = 10,
        reach = 4,
        blade = 2,
        verb = { 'graze', 'cut', 'slice', 'shred', 'lacerate' },
        verb3 = { 'grazes', 'cuts', 'slices', 'shreds', 'lacerates' },
    },
    ['long claws'] = {
        glyph = '-',
        name = 'long claws',
        color = { 200, 200, 200 },
        slot = 'weapon',
        heft = 10,
        reach = 8,
        blade = 2,
        verb = { 'graze', 'cut', 'slice', 'shred', 'lacerate' },
        verb3 = { 'grazes', 'cuts', 'slices', 'shreds', 'lacerates' },
    },
    ['sharp claws'] = {
        glyph = '-',
        name = 'sharp claws',
        color = { 200, 200, 200 },
        slot = 'weapon',
        heft = 10,
        reach = 4,
        blade = 4,
        verb = { 'graze', 'cut', 'slice', 'shred', 'lacerate' },
        verb3 = { 'grazes', 'cuts', 'slices', 'shreds', 'lacerates' },
    },
    ['tusks'] = {
        glyph = '-',
        name = 'tusks',
        color = { 200, 200, 200 },
        slot = 'weapon',
        heft = 12,
        reach = 8,
        blade = 3,
        verb = { 'poke', 'jab', 'stab', 'gore', 'skewer', 'impale' },
        verb3 = { 'pokes', 'jabs', 'stabs', 'gores', 'skewers', 'impales' },
    },
    ['fangs'] = {
        glyph = '-',
        name = 'fangs',
        color = { 200, 200, 200 },
        slot = 'weapon',
        heft = 8,
        reach = 4,
        blade = 2,
        verb = { 'nip', 'bite', 'chomp' },
        verb3 = { 'nips', 'bites', 'chomps' },
        effect = 'venom',
    },
    ['stick'] = {
        glyph = '|',
        name = 'stick',
        color = { 200, 160, 100 },
        slot = 'weapon',
        heft = 20,
        reach = 8,
        blade = 0,
        verb = { 'poke', 'jab', 'thump', 'whack', 'smash', 'pulverize' },
        verb3 = { 'pokes', 'jabs', 'thumps', 'whacks', 'smashes', 'pulverizes' },
    },
    ['hammer'] = {
        glyph = '|',
        name = 'hammer',
        color = { 200, 160, 100 },
        slot = 'weapon',
        heft = 30,
        reach = 4,
        blade = 0,
        verb = { 'poke', 'jab', 'thump', 'whack', 'smash', 'pulverize' },
        verb3 = { 'pokes', 'jabs', 'thumps', 'whacks', 'smashes', 'pulverizes' },
    },
    ['knife'] = {
        glyph = ')',
        name = 'knife',
        color = { 0, 160, 200 },
        slot = 'weapon',
        heft = 10,
        reach = 4,
        blade = 2,
        verb = { 'prick', 'cut', 'stab', 'slice', 'shred', 'lacerate' },
        verb3 = { 'pricks', 'cuts', 'stabs', 'slices', 'shreds', 'lacerates' },
    },
    ['machete'] = {
        glyph = ')',
        name = 'machete',
        color = { 0, 160, 200 },
        slot = 'weapon',
        heft = 16,
        reach = 6,
        blade = 2,
        verb = { 'prick', 'cut', 'stab', 'slice', 'shred', 'lacerate' },
        verb3 = { 'pricks', 'cuts', 'stabs', 'slices', 'shreds', 'lacerates' },
    },
    ['axe'] = {
        glyph = ')',
        name = 'axe',
        color = { 0, 160, 200 },
        slot = 'weapon',
        heft = 20,
        reach = 6,
        blade = 1,
        verb = { 'prick', 'cut', 'stab', 'slice', 'shred', 'lacerate' },
        verb3 = { 'pricks', 'cuts', 'stabs', 'slices', 'shreds', 'lacerates' },
    },
    ['scimitar'] = {
        glyph = ')',
        name = 'scimitar',
        color = { 0, 160, 200 },
        slot = 'weapon',
        heft = 10,
        reach = 6,
        blade = 3,
        verb = { 'prick', 'cut', 'stab', 'slice', 'shred', 'lacerate' },
        verb3 = { 'pricks', 'cuts', 'stabs', 'slices', 'shreds', 'lacerates' },
    },

    ['rags'] = {
        glyph = '[',
        name = 'rags',
        color = { 200, 200, 200 },
        slot = 'armor',
        rating = 1,
    },

    ['hide'] = {
        glyph = '[',
        name = 'hide',
        color = { 200, 160, 100 },
        slot = 'armor',
        rating = 2,
    },

    -- potions
    ['healing potion'] = {
        type = 'potion',
        glyph = '!',
        name = 'healing potion',
        color = { 200, 100, 100 },
        info = 'Instantly recovers half maximum health.',
        consume = function(mob, game)
            mob.health = math.min(mob.maxHealth, mob.health + mob.maxHealth * 0.5)
            if mob == game.player then
                game:log('You feel healthier.')
            else
                game:log(mob.definite, ' looks healthier.')
            end
            return true
        end,
    },

    ['ninja potion'] = {
        type = 'potion',
        glyph = '?',
        name = 'ninja potion',
        color = { 200, 200, 180 },
        info = 'Bestows ninja combat skills.',
        consume = function(mob, game)
            mob.delay = mob.delay + 5
            game.scene:affect(mob, 'ninja')
        end,
    },

    -- scrolls

    ['mapping scroll'] = {
        type = 'scroll',
        glyph = '?',
        name = 'mapping scroll',
        color = { 200, 200, 180 },
        info = 'Reveals unexplored areas nearby.',
        consume = function(mob, game)
            if mob ~= game.player then return true end -- no mob behavior
            for i, x, y, v in game.scene.feature:each() do
                game.scene.seen:setCell(x, y, true)
            end
            game:log('You become aware of your surroundings.')
            return true
        end,
    },

    ['ignition scroll'] = {
        type = 'scroll',
        glyph = '?',
        name = 'ignition scroll',
        color = { 200, 200, 180 },
        info = 'Causes victims to explode upon death.',
        consume = function(mob, game)
            if mob ~= game.player then return true end -- TODO: add mob behavior
            for i = 1, #game.scene.visibleMobs do
                local mob = game.scene.visibleMobs[i]
                game.scene:affect(mob, 'inner flame')
            end
            return true
        end,
    },

    ['fog scroll'] = {
        type = 'scroll',
        glyph = '?',
        name = 'fog scroll',
        color = { 200, 200, 180 },
        info = 'Forms a thick fog, obscuring vision.',
        consume = function(mob, game)
            mob.delay = mob.delay + 5
            game.scene:affect(mob, 'fog')
        end,
    },

    ['confuse scroll'] = {
        type = 'scroll',
        glyph = '?',
        name = 'confuse scroll',
        color = { 200, 200, 180 },
        info = 'Confuses its victims.',
        consume = function(mob, game)
            if mob ~= game.player then return true end -- TODO: add mob behavior
            for i = 1, #game.scene.visibleMobs do
                local mob = game.scene.visibleMobs[i]
                game.scene:affect(mob, 'confuse', { duration = 200 })
            end
            return true
        end,
    },
}
